perm filename CYCDRJ.LAP[3,LMM] blob sn#037506 filedate 1973-04-22 generic text, type T, neo UTF8
(DEFPROP CYCDRJFNS (CYCDRJFNS ISOMERS RING DRAW LABELLER) VALUE) 

(LAP ISOMERS SUBR) 
       (PUSH P (C 0. 0. (QUOTE NIL) 0.)) 
       (PUSH P (C 0. 0. (QUOTE NIL) 0.)) 
 TAG1  (MOVEI 1. (QUOTE CL?) S) 
       (CALL 1. (E PRINT) S) 
       (CALL 0. (E READ) S) 
       (MOVEM 1. 0. P) 
       (CALL 1. (E ATOM) S) 
       (JUMPE 1. TAG11) 
       (MOVEI 1. (QUOTE "THAT CAN'T BE RIGHT - ENTER A ") S) 
       (CALL 1. (E PRINC) S) 
       (JRST 0. TAG1) 
 TAG11 (PUSH P 0. P) 
       (PUSH P (C 0. 0. (QUOTE NIL) 0.)) 
       (PUSH P (C 0. 0. (QUOTE NIL) 0.)) 
 TAG2  (MOVE 1. -2. P) 
       (JUMPE 1. TAG5) 
       (HLRZ@ 1. -2. P) 
       (MOVEM 1. -1. P) 
       (CALL 1. (E ATOM) S) 
       (JUMPN 1. TAG20) 
       (HRRZ@ 1. -1. P) 
       (CALL 1. (E NUMBERP) S) 
       (JUMPE 1. TAG20) 
       (HLRZ@ 1. -1. P) 
       (CALL 1. (E ATOM) S) 
       (JUMPE 1. TAG20) 
       (MOVEI 2. (QUOTE VALENCE) S) 
       (HLRZ@ 1. -1. P) 
       (CALL 2. (E GET) S) 
       (CALL 1. (E NUMBERP) S) 
       (JUMPN 1. TAG26) 
       (CALL 0. (E TERPRI) S) 
       (MOVEI 1. (QUOTE "WHAT'S THE VALENCE OF ") S) 
       (CALL 1. (E PRINC) S) 
       (PUSH P 1.) 
       (HLRZ@ 1. -2. P) 
       (CALL 1. (E PRINC) S) 
       (MOVEI 1. (QUOTE ?) S) 
       (CALL 1. (E PRINC) S) 
       (HLRZ@ 1. -2. P) 
       (PUSH P 1.) 
       (CALL 0. (E READ) S) 
       (MOVEI 3. (QUOTE VALENCE) S) 
       (MOVE 2. 1.) 
       (POP P 1.) 
       (CALL 3. (E PUTPROP) S) 
       (CALL 1. (E NUMBERP) S) 
       (POP P 1.) 
       (JUMPE 1. TAG20) 
 TAG26 (TDZA 1. 1.) 
 TAG20 (MOVEI 1. (QUOTE T) S) 
       (MOVEM 1. 0. P) 
       (JUMPE 1. TAG19) 
       (JRST 0. TAG13) 
 TAG19 
 TAG3 
 TAG4  (HRRZ@ 1. -2. P) 
       (MOVEM 1. -2. P) 
       (JRST 0. TAG2) 
 TAG5  (MOVE 1. 0. P) 
 TAG13 (SUB P (C 3. 0. 3. 0.)) 
       (JUMPN 1. TAG1) 
 TAG6  (MOVEI 1. (QUOTE U?) S) 
       (CALL 1. (E PRINT) S) 
       (CALL 0. (E READ) S) 
       (MOVEM 1. -1. P) 
       (CALL 1. (E NUMBERP) S) 
       (JUMPE 1. TAG6) 
       (MOVE 2. -1. P) 
       (MOVE 1. 0. P) 
       (CALL 2. (E MOLECULES) S) 
       (MOVEM 1. (SPECIAL RESULTS) S) 
       (CALL 1. (E LENGTH) S) 
       (PUSH P 1.) 
       (MOVEI 1. (QUOTE GENERATED) S) 
       (CALL 1. (E NCONS) S) 
       (MOVEI 2. (QUOTE STRUCTURES) S) 
       (CALL 2. (E XCONS) S) 
       (POP P 2.) 
       (CALL 2. (E XCONS) S) 
       (CALL 1. (E PRINT) S) 
       (MOVEI 1. (QUOTE NIL)) 
       (SUB P (C 2. 0. 2. 0.)) 
       (POPJ P) 
       NIL 

(LAP RING SUBR) 
       (PUSH P (C 0. 0. (QUOTE NIL) 0.)) 
       (PUSH P (C 0. 0. (QUOTE NIL) 0.)) 
 TAG1  (MOVEI 1. (QUOTE CL?) S) 
       (CALL 1. (E PRINT) S) 
       (CALL 0. (E READ) S) 
       (MOVEM 1. 0. P) 
       (CALL 1. (E ATOM) S) 
       (JUMPE 1. TAG11) 
       (MOVEI 1. (QUOTE "THAT CAN'T BE RIGHT - ENTER A ") S) 
       (CALL 1. (E PRINC) S) 
       (JRST 0. TAG1) 
 TAG11 (PUSH P 0. P) 
       (PUSH P (C 0. 0. (QUOTE NIL) 0.)) 
       (PUSH P (C 0. 0. (QUOTE NIL) 0.)) 
 TAG2  (MOVE 1. -2. P) 
       (JUMPE 1. TAG5) 
       (HLRZ@ 1. -2. P) 
       (MOVEM 1. -1. P) 
       (CALL 1. (E ATOM) S) 
       (JUMPN 1. TAG20) 
       (HRRZ@ 1. -1. P) 
       (CALL 1. (E NUMBERP) S) 
       (JUMPE 1. TAG20) 
       (HLRZ@ 1. -1. P) 
       (CALL 1. (E ATOM) S) 
       (JUMPE 1. TAG20) 
       (MOVEI 2. (QUOTE VALENCE) S) 
       (HLRZ@ 1. -1. P) 
       (CALL 2. (E GET) S) 
       (CALL 1. (E NUMBERP) S) 
       (JUMPN 1. TAG26) 
       (CALL 0. (E TERPRI) S) 
       (MOVEI 1. (QUOTE "WHAT'S THE VALENCE OF ") S) 
       (CALL 1. (E PRINC) S) 
       (PUSH P 1.) 
       (HLRZ@ 1. -2. P) 
       (CALL 1. (E PRINC) S) 
       (MOVEI 1. (QUOTE ?) S) 
       (CALL 1. (E PRINC) S) 
       (HLRZ@ 1. -2. P) 
       (PUSH P 1.) 
       (CALL 0. (E READ) S) 
       (MOVEI 3. (QUOTE VALENCE) S) 
       (MOVE 2. 1.) 
       (POP P 1.) 
       (CALL 3. (E PUTPROP) S) 
       (CALL 1. (E NUMBERP) S) 
       (POP P 1.) 
       (JUMPE 1. TAG20) 
 TAG26 (TDZA 1. 1.) 
 TAG20 (MOVEI 1. (QUOTE T) S) 
       (MOVEM 1. 0. P) 
       (JUMPE 1. TAG19) 
       (JRST 0. TAG13) 
 TAG19 
 TAG3 
 TAG4  (HRRZ@ 1. -2. P) 
       (MOVEM 1. -2. P) 
       (JRST 0. TAG2) 
 TAG5  (MOVE 1. 0. P) 
 TAG13 (SUB P (C 3. 0. 3. 0.)) 
       (JUMPN 1. TAG1) 
 TAG6  (MOVEI 1. (QUOTE U?) S) 
       (CALL 1. (E PRINT) S) 
       (CALL 0. (E READ) S) 
       (MOVEM 1. -1. P) 
       (CALL 1. (E NUMBERP) S) 
       (JUMPE 1. TAG6) 
       (MOVE 2. 0. P) 
       (MOVE 1. -1. P) 
       (CALL 2. (E RINGS) S) 
       (MOVEM 1. (SPECIAL RESULTS) S) 
       (CALL 1. (E LENGTH) S) 
       (PUSH P 1.) 
       (MOVEI 1. (QUOTE GENERATED) S) 
       (CALL 1. (E NCONS) S) 
       (MOVEI 2. (QUOTE STRUCTURES) S) 
       (CALL 2. (E XCONS) S) 
       (POP P 2.) 
       (CALL 2. (E XCONS) S) 
       (CALL 1. (E PRINT) S) 
       (MOVEI 1. (QUOTE NIL)) 
       (SUB P (C 2. 0. 2. 0.)) 
       (POPJ P) 
       NIL 

(LAP DRAW SUBR) 
       (PUSH P 1.) 
       (PUSH P (C 0. 0. (QUOTE NIL) 0.)) 
       (MOVE 1. (SPECIAL RESULTS) S) 
       (CALL 1. (E LENGTH) S) 
       (MOVE 2. -1. P) 
       (CALL 2. (E *LESS) S) 
       (JUMPE 1. TAG5) 
       (MOVEI 1. (QUOTE (NOT THAT MANY STRUCTURES -- TRY AGAIN!!!)) S) 
       (CALL 1. (E PRINT) S) 
       (JRST 0. TAG4) 
 TAG5  (MOVE 2. -1. P) 
       (MOVE 1. (SPECIAL RESULTS) S) 
       (CALL 2. (E NTH) S) 
       (HLRZ@ 1. 1.) 
       (HLRZ@ 2. 1.) 
       (MOVEM 1. 0. P) 
       (CAIE 2. (QUOTE STRUC) S) 
       (JRST 0. TAG6) 
       (MOVEI 2. (QUOTE NIL)) 
       (CALL 2. (E DRAWS) S) 
       (JRST 0. TAG4) 
 TAG6  (MOVE 1. -1. P) 
       (CALL 1. (E NCONS) S) 
       (MOVEI 2. (QUOTE STRUCTURE#) S) 
       (CALL 2. (E XCONS) S) 
       (MOVEM 1. (SPECIAL TITLE) S) 
       (MOVE 1. 0. P) 
       (CALL 1. (E PRINRAD) S) 
 TAG4  (MOVEI 1. (QUOTE NIL)) 
       (SUB P (C 2. 0. 2. 0.)) 
       (POPJ P) 
       NIL 

(LAP LABELLER SUBR) 
       (PUSH P (C 0. 0. (QUOTE NIL) 0.)) 
       (PUSH P (C 0. 0. (QUOTE NIL) 0.)) 
 TAG1  (CALL 0. (E TERPRI) S) 
       (MOVEI 1. (QUOTE "ATOMS TO BE LABELLED?") S) 
       (CALL 1. (E PRINC) S) 
       (CALL 0. (E READ) S) 
       (MOVEM 1. 0. P) 
       (CALL 1. (E ATOM) S) 
       (JUMPE 1. TAG11) 
       (MOVEI 1. (QUOTE "THAT CAN'T BE RIGHT - ENTER A ") S) 
       (CALL 1. (E PRINC) S) 
       (JRST 0. TAG1) 
 TAG11 (PUSH P 0. P) 
       (PUSH P (C 0. 0. (QUOTE NIL) 0.)) 
       (PUSH P (C 0. 0. (QUOTE NIL) 0.)) 
 TAG2  (MOVE 1. -2. P) 
       (JUMPE 1. TAG5) 
       (HLRZ@ 1. -2. P) 
       (MOVEM 1. -1. P) 
       (CALL 1. (E ATOM) S) 
       (JUMPN 1. TAG20) 
       (HRRZ@ 1. -1. P) 
       (CALL 1. (E NUMBERP) S) 
       (JUMPE 1. TAG20) 
       (HLRZ@ 1. -1. P) 
       (CALL 1. (E ATOM) S) 
       (JUMPE 1. TAG20) 
       (MOVEI 2. (QUOTE VALENCE) S) 
       (HLRZ@ 1. -1. P) 
       (CALL 2. (E GET) S) 
       (CALL 1. (E NUMBERP) S) 
       (JUMPN 1. TAG26) 
       (CALL 0. (E TERPRI) S) 
       (MOVEI 1. (QUOTE "WHAT'S THE VALENCE OF ") S) 
       (CALL 1. (E PRINC) S) 
       (PUSH P 1.) 
       (HLRZ@ 1. -2. P) 
       (CALL 1. (E PRINC) S) 
       (MOVEI 1. (QUOTE ?) S) 
       (CALL 1. (E PRINC) S) 
       (HLRZ@ 1. -2. P) 
       (PUSH P 1.) 
       (CALL 0. (E READ) S) 
       (MOVEI 3. (QUOTE VALENCE) S) 
       (MOVE 2. 1.) 
       (POP P 1.) 
       (CALL 3. (E PUTPROP) S) 
       (CALL 1. (E NUMBERP) S) 
       (POP P 1.) 
       (JUMPE 1. TAG20) 
 TAG26 (TDZA 1. 1.) 
 TAG20 (MOVEI 1. (QUOTE T) S) 
       (MOVEM 1. 0. P) 
       (JUMPE 1. TAG19) 
       (JRST 0. TAG13) 
 TAG19 
 TAG3 
 TAG4  (HRRZ@ 1. -2. P) 
       (MOVEM 1. -2. P) 
       (JRST 0. TAG2) 
 TAG5  (MOVE 1. 0. P) 
 TAG13 (SUB P (C 3. 0. 3. 0.)) 
       (JUMPN 1. TAG1) 
 TAG6  (MOVEI 1. (QUOTE U?) S) 
       (CALL 1. (E PRINT) S) 
       (CALL 0. (E READ) S) 
       (MOVEM 1. -1. P) 
       (CALL 1. (E NUMBERP) S) 
       (JUMPE 1. TAG6) 
       (MOVE 2. -1. P) 
       (MOVE 1. 0. P) 
       (CALL 2. (E MOLECULES) S) 
       (MOVEM 1. (SPECIAL RESULTS) S) 
       (CALL 1. (E LENGTH) S) 
       (PUSH P 1.) 
       (MOVEI 1. (QUOTE GENERATED) S) 
       (CALL 1. (E NCONS) S) 
       (MOVEI 2. (QUOTE STRUCTURES) S) 
       (CALL 2. (E XCONS) S) 
       (POP P 2.) 
       (CALL 2. (E XCONS) S) 
       (CALL 1. (E PRINT) S) 
       (MOVEI 1. (QUOTE NIL)) 
       (SUB P (C 2. 0. 2. 0.)) 
       (POPJ P) 
       NIL